package com.fudan.adse.service;

import com.fudan.adse.api.CommonResult;
import com.fudan.adse.domain.bo.OAuthTokenBO;
import com.fudan.adse.domain.dto.UserParam;
import com.fudan.adse.domain.po.Role;
import com.fudan.adse.domain.po.User;
import com.fudan.adse.domain.vo.UserVO;

import java.util.List;

/**
 * @author Jerry Zhang <zhangjian16@fudan.edu.cn>
 * @desc 用户管理服务
 * @date 2022-09-14 12:01
 */
public interface UserService {
    /**
     * 添加用户
     *
     * @param param 用户信息
     * @return 用户uuid
     */
    String addUser(UserParam param);

    /**
     * 登录功能
     *
     * @param username 用户名
     * @param password 密码
     * @return 调用认证中心返回结果
     */
    CommonResult login(String username, String password);


    /**
     * 从数据库获取用户信息
     * 不返回隐私信息（例如密码等字段）
     *
     * @param username
     * @return
     */
    UserVO getUserByUsername(String username);

    /**
     * 获取所有用户信息
     * 不返回隐私信息（例如密码等字段）
     *
     * @RETURN
     */
    List<UserVO> getAllUsers();

    void updateUser(User user);


    void deleteUser(String username);


    /**
     * 获取用户对于角色
     */
    List<Role> getRoleList(Integer userId);
}
